home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / meltdown.lha / LOADER / Load.S next >
Encoding:
Text File  |  1991-02-20  |  16.3 KB  |  873 lines

  1. ****************************************************************************
  2. *                                                                           *
  3. *            ARENA LOADER-1 CODED BY MELT DOWN/ARENA             *
  4. *                                                                           *
  5. *****************************************************************************
  6.  
  7. ; Include the macros
  8.  
  9.     Incdir    Df1:
  10.     Include    Source/Macro
  11.  
  12. *****************************************************************************
  13.  
  14. ; Dont forget to use chip ram
  15.  
  16.     Chip
  17.  
  18. SINEPLANE    =    $7d000
  19. ROTATEDPNTS    =    $7e000
  20. X1INC        =    -4
  21. X1ADD        =    2
  22.  
  23. X2INC        =    3
  24. X2ADD        =    2
  25.  
  26. MENUSCREEN    =    $60118
  27. MENUSCREEN1    =    $606b8
  28. SCROLLSPEED    =    1
  29. AMTEXT        =    14            ; 14 Max Text
  30. AMFILES        =    9            ; AMOUNT OF FILES
  31. UPARROW        =    $67
  32. DOWNARROW    =    $65
  33. RETURN        =    $77
  34. FILECNT        =    $80
  35.  
  36. *****************************************************************************
  37.  
  38. ; Kill the operating system for good mesure
  39.  
  40.     Clr.l    FileCnt
  41.     Move.l    4,A6
  42.     Jsr    -132(A6)
  43.     Move.l    (a6),A6
  44.     Move.l    (a6),A6
  45.     Move.l    38(a6),OldCopper
  46.     
  47. *****************************************************************************
  48.  
  49. ; Init Logo Bitmaps
  50.  
  51.     Move.l    #Logo,D0
  52.     PlaneOn    D0,Log1l+2,Log1h+2
  53.     Add.l    #35*40,D0
  54.     PlaneOn    D0,Log2l+2,Log2h+2
  55.  
  56. *****************************************************************************
  57.  
  58. ; Clear Some memory
  59.  
  60.     Lea    $70000,A1
  61.     Move.l    #$f000/4,d0
  62. Clr
  63.     Clr.l    (a1)+
  64.     Dbf    D0,Clr
  65.     
  66.     Lea    $60000,A1
  67.     Move.l    #$f000/4,d0
  68. Clr1
  69.     Clr.l    (a1)+
  70.     Dbf    D0,Clr1
  71.  
  72.     Bsr    Bpinit
  73.         
  74. *****************************************************************************
  75.  
  76. ; Load custom and set up copper list
  77.  
  78.     Lea    Custom,A5
  79.     Move.l    #Copper,Cop1lch(a5)
  80.     Bsr    PrintMainMenu
  81.  
  82. *****************************************************************************
  83.  
  84. ; Main routine here
  85.  
  86. Mouse
  87.     Cmp.b    #$77,$dff006
  88.     Bne    Mouse
  89.     
  90.     Rept    ScrollSpeed
  91.     Bsr    Scrolly
  92.     Endr
  93.     Bsr    DoSine
  94.  
  95.     Bsr    DBuff                ; Need To Buffer
  96.     Bsr    Clear                ; Clear The Shit
  97.     Bsr    Rotate                ; Rotate
  98.     Bsr    DoConects            ; Draw Lines
  99.     Bsr    Fill                ; Filleto Fish
  100.     Bsr    Rm
  101.     Bsr    CheckArrow
  102.     Bsr    UpDateCopper
  103.     Add.w    #2,Xrotation
  104.     And.w    #510,Xrotation
  105.     SaveAll
  106.     Bsr    Bpmusic
  107.     LoadAll
  108.     Btst    #$6,$bfe001
  109.     Beq.s    Leave
  110.     Cmp.b    #return,$bfec01
  111.     Bne.s    Mouse
  112.  
  113. *****************************************************************************
  114.  
  115. ; Return operating system and go back to user
  116. Leave
  117.     Move.l    OldCopper,$dff080
  118.     Move.l    4,a6
  119.     Jsr    -138(A6)
  120.      clr.w    $dff0a8
  121.     clr.w    $dff0b8
  122.     clr.w    $dff0c8
  123.     clr.w    $dff0d8
  124.     move.w    #$f,$dff096
  125.     Clr.l    D0                ; No error
  126.     Rts
  127.     
  128. *****************************************************************************
  129.  
  130.     Include    Source/SndMon.s
  131.     
  132. *****************************************************************************
  133.  
  134. OldCopper
  135.     Dc.l    0
  136.     
  137. *****************************************************************************
  138.  
  139. UpDateCopper
  140.     Move.l    FileCnt,D0
  141.     Mulu    #8,D0
  142.     Add.l    #142,D0
  143.     Move.b    d0,Sell
  144.     Add.b    #8,D0
  145.     Move.b    d0,Selh
  146.     Rts
  147.     
  148. *****************************************************************************
  149.  
  150. CheckArrow
  151.     Cmp.b    #DownArrow,$bfec01
  152.     Bne.s    NoUpAr
  153.     Cmp.l    #AmFiles-1,FileCnt
  154.     Beq.s    NoAdd1
  155.     Add.l    #1,FileCnt            ; Set To Inc
  156.     Clr.b    $bfec01
  157. NoAdd1
  158.     Rts
  159. NoUpAr
  160.     Cmp.b    #UpArrow,$bfec01
  161.     Bne.s    NoDownAr
  162.     Tst.l    FileCnt
  163.     Beq.s    NoDownAr
  164.     Sub.l    #1,FileCnt            ; Set To Down
  165.     Clr.b    $bfec01
  166. NoDownAr
  167.     Rts
  168.     
  169. *****************************************************************************
  170.  
  171. ; Read the mouse
  172.  
  173. RM 
  174.     Move.b    $dff00a,D0
  175.     Cmp.b    OldMs,D0
  176.     Bgt    AddMs
  177.     Blt    SubMs
  178.     Rts
  179. AddMs
  180.     Move.b    d0,OldMs
  181.     Cmp.l    #AmFiles-1,FileCnt
  182.     Beq.s    SkipAdd
  183.     Add.l    #1,FileCnt
  184. SkipAdd
  185.     Rts
  186. SubMs
  187.     Move.b    d0,OldMs
  188.     Tst.l    FileCnt
  189.     Beq.s    SkipSub
  190.     Sub.l    #1,FileCnt
  191. SkipSub
  192.     Rts
  193.     
  194. OldMs
  195.     Dc.l    0
  196. *****************************************************************************
  197.  
  198. ; Print Menu
  199.  
  200. PrintMainMenu
  201.     Lea    TitleText,A0
  202.     Lea    MenuScreen,A1
  203.     Move.l    #(4*40)-1,D0            ; Amount Of Chars
  204.     Bsr    PrintShit
  205.     Lea    MenuText,A0
  206.     Lea    MenuScreen1,A1
  207.     Move.l    #(AmText*40)-1,D0        ; Amount Of Chars
  208.     Bsr    PrintShit
  209.     Rts
  210.  
  211. PrintShit
  212.     Clr.l    D7
  213. Print
  214.     Clr.l    D1
  215.     Move.b    (a0)+,D1
  216.     Sub.b    #32,D1
  217.     Divu    #40,D1                ; Divide by Chars
  218.     Swap    D1
  219.     Move.w    d1,-(a7)
  220.     Swap    D1
  221.     Mulu    #8*40,D1            ; Length of fnt*8
  222.     Add.w    (a7)+,D1
  223.     Add.l    #Font,D1            ; Get to Char
  224.     
  225.     Movem.l    d0-d7/a0-a6,-(a7)
  226.     Move.l    D1,A0
  227.     Rept    8
  228.     Move.b    (a0),(a1)
  229.     Add.w    #40,A0
  230.     Add.w    #40,A1
  231.     Endr
  232.     Movem.l    (a7)+,d0-d7/a0-a6
  233.     Add.w    #1,a1
  234.     Add.w    #1,D7
  235.     Cmp.w    #40,D7
  236.     Bne    NoResetCords
  237.     Clr.l    D7
  238.     Sub.l    #40,A1
  239.     Add.l    #40*8,A1
  240. NoResetCords
  241.     Dbf    d0,Print
  242.     Rts
  243.  
  244. *****************************************************************************
  245.  
  246. Scrolly
  247.     Cmp.l    #0,Scrolled
  248.     Bgt    ShiftScroll
  249.     Move.l    #8,Scrolled
  250.     Clr.l    D1
  251.     Move.l    ScrollPtr,A0
  252.     Move.b    (a0)+,D1
  253.     Cmp.b    #$ff,D1
  254.     Bne    NoScroll
  255.     Move.l    #ScrollMes,A0
  256.     Move.b    (A0)+,d1
  257. NoScroll
  258.     Move.l    A0,ScrollPtr
  259.     Sub.b    #32,D1
  260.     Divu    #40,D1                ; Divide by Chars
  261.     Swap    D1
  262.     Move.w    d1,-(a7)
  263.     Swap    D1
  264.     Mulu    #8*40,D1            ; Length of fnt*8
  265.     Add.w    (a7)+,D1
  266.     Add.l    #Font,D1            ; Get to Char
  267.     Lea    ScrollerSpace+45,A1
  268.     Move.l    D1,A0
  269.     Rept    8
  270.     Move.b    (a0),(a1)
  271.     Add.w    #40,A0
  272.     Add.w    #46,A1
  273.     Endr
  274.     Blitwait
  275.     Move.l    #ScrollerSpace,Bltapth(a5)
  276.     Move.l    #ScrollerSpace-2,Bltdpth(a5)
  277.     Move.l    #$89f00000,Bltcon0(A5)
  278.     Move.w    #0,Bltamod(a5)
  279.     Move.w    #0,Bltdmod(a5)
  280.     Move.l    #-1,Bltafwm(a5)
  281.     Move.w    #9*64+23,Bltsize(a5)
  282.     Move.w    #$00fc,Smth+2
  283. ShiftScroll
  284.     Sub.l    #1,Scrolled
  285.     Sub.w    #$0011,Smth+2
  286.     Rts
  287. Scrolled
  288.     Dc.l    0
  289. ScrollPtr            
  290.     Dc.l    ScrollMes
  291. ScrollMes
  292.     Include    loader/Scrolltext.BAK
  293.     Dc.b    255
  294.     Even
  295.  
  296. *****************************************************************************
  297.  
  298. DoSine
  299.     Blitwait
  300.     Move.l    #Sineplane,Bltdpth(a5)
  301.     Move.w    #0000,Bltdmod(a5)
  302.     Move.l    #$01000000,Bltcon0(a5)
  303.     Move.l    #-1,Bltafwm(a5)
  304.     Move.w    #48*64+23,Bltsize(a5)
  305.     Blitwait
  306.     Move.w    #44,bltamod(a5)
  307.     Move.w    #44,bltcmod(a5)
  308.     Move.w    #44,bltdmod(a5)
  309.     Move.l    #$0bfa0000,Bltcon0(a5)
  310.     Move.l    #-1,Bltafwm(a5)
  311.     Add.w    #X1inc,Sin1ptr
  312.     And.w    #$7e,Sin1ptr
  313.     Add.w    #X2inc,Sin2ptr
  314.     And.w    #$7e,Sin2ptr
  315.     
  316.     Lea    Sin1(pc),a0
  317.     Add.w    Sin1ptr,a0            ; A0 Holds Current Sin Pos
  318.     Lea    Sin1(pc),a1
  319.     Add.w    Sin2ptr,a1            ; A1 Holds Current Sin Pos
  320.  
  321.     Move.l    #ScrollerSpace,d0        ; Scroler In Memory
  322.     Move.l    #SinePlane,d1            ; Sine Dest
  323.     Move.l    #X1add,d2            ; Add to sine
  324.     Move.l    #X2add,d3            ; Add to sine
  325.     Move.w    #8*64+1,D4            ; Size
  326. Blitmac    Macro
  327.     Add.w    (a0),d1
  328.     Add.w    (a1),d1
  329.     Move.l    d0,Bltapth(a5)
  330.     Move.l    d1,Bltcpth(a5)
  331.     Move.l    d1,Bltdpth(a5)
  332.     Move.w    #\1,Bltafwm(a5)
  333.     Move.w    d4,Bltsize(a5)
  334.     Sub.w    (a0),d1
  335.     Sub.w    (a1),d1
  336.     Add.w    D2,A0
  337.     Add.w    D3,A1
  338.     Endm
  339.     Rept    23
  340.     Blitmac    %1111111100000000
  341.     Blitmac    %0000000011111111
  342.     Add.w    #2,d0
  343.     Add.w    #2,d1
  344.     Endr
  345.     Rts
  346.     
  347. *****************************************************************************
  348.  
  349. Sin1ptr
  350.     Dc.w    0
  351. Sin2ptr
  352.     Dc.w    90
  353. Sin1    
  354.     Rept    5
  355.     dc.w    20*46,20*46,20*46,20*46,19*46,19*46,18*46,18*46
  356.     dc.w    17*46,16*46,16*46,15*46,14*46,13*46,12*46,11*46
  357.     dc.w    10*46,9*46,8*46,7*46,6*46,5*46,4*46,4*46
  358.     dc.w    3*46,2*46,2*46,1*46,1*46,0*46,0*46,0*46
  359.     dc.w    0*46,0*46,0*46,0*46,1*46,1*46,2*46,2*46
  360.     dc.w    3*46,4*46,4*46,5*46,6*46,7*46,8*46,9*46
  361.     dc.w    10*46,11*46,12*46,13*46,14*46,15*46,16*46,16*46
  362.     dc.w    17*46,18*46,18*46,19*46,19*46,20*46,20*46,20*46
  363.     Endr
  364.  
  365. *****************************************************************************
  366.  
  367. Font
  368.     Incbin    Gfx/R-8x8.bm
  369.     
  370. *****************************************************************************
  371.  
  372. Dbuff
  373.     Eor.w    #$3000,Buff            ; Change Buffer
  374.     Eor.w    #$3000,Bit1l+2            ; Change Bitmap Ptr
  375.     Rts
  376.     
  377. *****************************************************************************
  378.  
  379. Fill
  380.     Blitwait
  381.     Add.l    #10240-2,A0            ; Plane Size -2
  382.                         ; Now At Bottom Of Screen
  383.     Move.l    #$09f0000a,Bltcon0(a5)        ; D=A Desending And Fill
  384.     Move.l    #$ffffffff,bltafwm(a5)        ; Use All Bits And Why Not
  385.     Move.l    a0,bltapth(a5)            ; Set Ketchup
  386.     Move.l    a0,bltdpth(a5)            ; Set THE IN PLACE
  387.     Move.w    #0,Bltamod(a5)            ; Dont Skip 
  388.     Move.w    #0,Bltdmod(a5)            ; To My Loop
  389.     Move.w    #255*64+20,bltsize(a5)        ; Do The Full Screen
  390.     Rts
  391.  
  392. *****************************************************************************
  393.  
  394. Clear
  395.     Blitwait                ; Blitter Nasty But Why Do
  396.                         ; I Have To Wait????
  397.     Move.l    #$01000000,Bltcon0(a5)        ; Clear
  398.     Move.w    #$0000,Bltdmod(a5)        ; Skip No Bytes
  399.     Move.l    #$70000,a1            ; Base Of Screen
  400.     Add.w    Buff,A1                ; Add Base Ptr 
  401.     Move.l    a1,Bltdpth(A5)            ; Set Dest
  402.     Move.l    #-1,Bltafwm(a5)            ; Use All Bits
  403.     Move.w    #80*64+20,Bltsize(a5)        ; Fill Half Screen
  404.     Movem.l    a0-a6/d0-d7,-(a7)        ; Save The Regs
  405.     Movem.l    RegFiller(pc),a1-a6/d0-d7    ; Clear The Regs
  406.     Move.l    #$70000,a0            ; Pntr To Screen
  407.     Add.w    Buff,A0                ; Add Base Ptr
  408.     Add.l    #6400,a0            ; Bttm Of Screen
  409.     Rept    58                ; Rept it 58 times
  410. ; 3200/56 = 57.14 Rnd Up = 58
  411.     Movem.l    a1-a6/d0-d7,-(a0)        ; Clear 56 Butes
  412.     Endr                    ; End repeat
  413.     Movem.l    (a7)+,a0-a6/d0-d7        ; Restor Regs
  414.     Rts
  415. RegFiller
  416.     Dcb.l    16,0
  417.     Rts
  418.  
  419. *****************************************************************************
  420.  
  421. SinCalc    Macro
  422.     move.w    d0,d2                ; Store The X
  423.     move.w    d1,d3                ; Store The Y
  424.     move    64(a2,d6),d4            ; Get Cosine Of Angle X
  425.     move    -64(a2,d6),d5            ; Get Sine Of Angle X
  426.     muls    d4,d0                ; X cos (a)
  427.     muls    d5,d1                ; Y sin (a)
  428.     sub.l    d1,d0                ; X cos (a) - y sin (a)
  429.     add.l    d0,d0                ; Double it
  430.     swap    d0                ; swap it ( divu 65536 )
  431.     muls    d5,d2                ; X sin (a)
  432.     muls    d4,d3                ; Y cos (a)
  433.     add.l    d2,d3                ; y cos (a) + x sin (a)
  434.     add.l    d3,d3                ; double it
  435.     swap    d3                ; swap it ( divu 65536 )
  436.     Endm
  437.  
  438. Rotate
  439.     Lea    RotatedPnts,A0            ; Dest For Points
  440.     Lea    StablePnts,A1            ; Get Points 
  441.     lea    VecSin+64,a2            ; Get Sine
  442.     Move.w    (a1)+,d7            ; Number Of Points
  443. Calculate
  444.     move.w    (a1)+,d0            ; Get X
  445.     move.w    (a1)+,d1            ; Get Y
  446.     move.w    ZRotation,d6            ; rotation
  447. ; X1 = X COS(A)-Y SIN(A)
  448. ; Y1 = Y COS(A)+X SIN(A)
  449.     SinCalc
  450.     Move.w    D0,X1Space            ; Store X
  451.     Move.w    D3,D0                ; D0=Y
  452.     Move.w    (a1)+,D1            ; D1=Z
  453.     move.w    YRotation,d6            ; rotation
  454. ; Y2 = Y1 COS(B)-Z SIN(B)
  455. ; Z1 = Z  COS(B)+Y1 SIN(B)
  456.     SinCalc    
  457.     Move.w    D0,Y2Space            ; Store Y
  458.     Move.w    D3,D0                ; Shift Z
  459.     Move.w    X1Space,D1            ; Get X
  460.     Move.w    XRotation,D6
  461. ; X2 = Z1 COS(C)-X1 SIN(C)
  462. ; Z2 = X1  COS(C)+Z1 SIN(C)
  463.     SinCalc    
  464.     Move.w    Y2Space,D1
  465.  
  466.     Add.w    #160,D0
  467.     Add.w    #75,D1
  468.     Move.w    d0,(a0)+
  469.     Move.w    d1,(a0)+
  470.     Dbf    D7,Calculate
  471.     Rts
  472.  
  473. *****************************************************************************
  474.  
  475. DoConects
  476.     Move.w    #40,$60(a5)            ; Screen In Bytes
  477.     Move.l    #-$8000,$72(a5)            ; Set to line ??????
  478.     Move.l    #-1,$44(a5)            ; The Mask
  479.     Lea    RotatedPnts,A3            ; Pointer To Points
  480.     Lea    ConectPnts,A4            ; Pointer To Connects
  481.     Move.w    (a4)+,D7            ; Number Of Connects
  482.     Lea    $70000,A0            ; Pnt to screen
  483.     Add.w    Buff,A0                ; Add buff
  484.     Move.l    #40,D5                ; 40 Bytes accross
  485. DrawLoop
  486.     Move.w    (a4)+,d4            ; Conect These
  487.     Move.w    (a3,d4),D0            ; Get X
  488.     Move.w    2(a3,d4),D1            ; Get Y
  489.     Move.w    (a4)+,d4            ; Conect These
  490.     Move.w    (a3,d4),D2            ; Get X1
  491.     Move.w    2(a3,d4),D3            ; Get Y1
  492.     Movem.l    a0/d5,-(A7)
  493.  
  494. ;          LINEDRAW ROUTINE FOR USE WITH FILLING:
  495. ; Preload:  d0=X1  d1=Y1  d2=X2  d3=Y2  d5=Screenwidth  a0=address  a5=$dff000 
  496. ; $dff060=Screenwidth (word)  $dff072=-$8000 (longword)  $dff044=-1 (longword)
  497.  
  498.     cmp.w    d1,d3
  499.     bgt.s    line1
  500.     exg    d0,d2
  501.     exg    d1,d3
  502.     beq.s    out
  503. line1:    move.w    d1,d4
  504.     muls    d5,d4
  505.     move.w    d0,d5
  506.     add.l    a0,d4
  507.     asr.w    #3,d5
  508.     add.w    d5,d4
  509.     moveq    #0,d5
  510.     sub.w    d1,d3
  511.     sub.w    d0,d2
  512.     bpl.s    line2
  513.     moveq    #1,d5
  514.     neg.w    d2
  515. line2:    move.w    d3,d1
  516.     add.w    d1,d1
  517.     cmp.w    d2,d1
  518.     dbhi    d3,line3
  519. line3:    move.w    d3,d1
  520.     sub.w    d2,d1
  521.     bpl.s    line4
  522.     exg    d2,d3
  523. line4:    addx.w    d5,d5
  524.     add.w    d2,d2
  525.     move.w    d2,d1
  526.     sub.w    d3,d2
  527.     addx.w    d5,d5
  528.     and.w    #15,d0
  529.     ror.w    #4,d0
  530.     or.w    #$a4a,d0
  531. waitblt:btst    #6,2(a5)
  532.     bne.s    waitblt
  533.     move.w    d2,$52(a5)
  534.     sub.w    d3,d2
  535.     lsl.w    #6,d3
  536.     addq.w    #2,d3
  537.     move.w    d0,$40(a5)
  538.     move.b    oct(PC,d5.w),$43(a5)
  539.     move.l    d4,$48(a5)
  540.     move.l    d4,$54(a5)
  541.     movem.w    d1/d2,$62(a5)
  542.     move.w    d3,$58(a5)
  543. out:    
  544.     Movem.l    (A7)+,a0/d5
  545.     Dbf    D7,DrawLoop
  546.     Rts
  547.     
  548. *****************************************************************************
  549.  
  550. oct:    dc.l    $3431353,$b4b1757   
  551.  
  552. *****************************************************************************
  553.  
  554. ; Varibles For Vector Routine
  555.  
  556. VecSin    Incbin    Binary/Sin
  557.     Incbin    Binary/Sin
  558. Y2Space    Dc.w    0
  559. X1Space    Dc.w    0
  560. Xrotation
  561.     Dc.w    000
  562. YRotation
  563.     Dc.w    0
  564. ZRotation
  565.     Dc.w    00
  566. Buff
  567.     Dc.w    $0000
  568. XY    Macro
  569.     Dc.w    (\1/8)*6,\2,0
  570.     Endm
  571. Conect    Macro
  572.     Dc.w    \1*4,\2*4
  573.     Endm
  574. StablePnts
  575.     Dc.w    46-1                ; Number of points
  576.     XY    -200,50
  577.     XY    -150,-50
  578.     XY    -70,-50
  579.     XY    -50,-30
  580.     XY    -50,-10
  581.     XY    -70,10
  582.     XY    -30,50
  583.     XY    -60,50
  584.     XY    -90,20
  585.     XY    -90,50
  586.     XY    -110,70
  587.     XY    -110,-10
  588.     XY    -70,-10
  589.     XY    -70,-30
  590.     XY    -120,-30
  591.     XY    -120,50
  592.  
  593.     XY    -170,30
  594.     XY    -140,30
  595.     XY    -140,-30
  596.  
  597.     XY    -60,-50
  598.     XY    20,-50
  599.     XY    20,-30
  600.     XY    -40,-30
  601.         
  602.     XY    -40,-10
  603.     XY    10,-10
  604.     XY    10,10
  605.     XY    -20,10
  606.     XY    -20,20
  607.     XY    -10,30
  608.     XY    30,30
  609.     XY    30,-50
  610.     XY    90,10
  611.     XY    90,-70
  612.     XY    110,-50
  613.     XY    110,50
  614.     XY    50,-10
  615.     XY    50,50
  616.     XY    -20,50
  617.     XY    -40,30
  618.     
  619.     XY    120,-50
  620.     XY    150,-50
  621.     XY    200,50
  622.     XY    120,50
  623.     
  624.     XY    140,30
  625.     XY    170,30
  626.     XY    140,-30
  627. ConectPnts            
  628.     Dc.w    46-1                ; Number of connects        
  629.     Conect    0,1
  630.     Conect    1,2
  631.     Conect    2,3
  632.     Conect    3,4
  633.     Conect    4,5
  634.     Conect    5,6
  635.     Conect    6,7
  636.     Conect    7,8
  637.     Conect    8,9
  638.     Conect    9,10
  639.     Conect    10,11
  640.     Conect    11,12
  641.     Conect    12,13
  642.     Conect    13,14
  643.     Conect    14,15
  644.     Conect    15,0
  645.     
  646.     Conect    16,17
  647.     Conect    17,18
  648.     Conect    18,16
  649.     
  650.     Conect    19,20
  651.     Conect    20,21
  652.     Conect    21,22
  653.     Conect    22,19
  654.     
  655.     Conect    23,24
  656.     Conect    24,25
  657.     Conect    25,26
  658.     Conect    26,27
  659.     Conect    27,28
  660.     Conect    28,29
  661.     Conect    29,30
  662.     Conect    30,31
  663.     Conect    31,32
  664.     Conect    32,33
  665.     Conect    33,34
  666.     Conect    34,35
  667.     Conect    35,36
  668.     Conect    36,37
  669.     Conect    37,38
  670.     Conect    38,23
  671.     
  672.     Conect    39,40
  673.     Conect    40,41
  674.     Conect    41,42
  675.     Conect    42,39
  676.  
  677.     Conect    43,44
  678.     Conect    44,45
  679.     Conect    45,43
  680.     
  681. *****************************************************************************
  682.  
  683. ; All copper list after here
  684.  
  685. Copper
  686. ; ---- Simple Screen setup ----
  687.     Spr_Off                    ; Switch sprites off
  688.     Cmove    $2871,Diwstrt
  689.     Cmove    $2cc1,Diwstop
  690.     Cmove    $0028,Ddfstrt
  691.     Cmove    $00d0,Ddfstop
  692.     Cmove    $0002,Bpl1mod            
  693.     Cmove    $0002,Bpl2mod
  694.     Cmove    $0007,bpl1pth
  695.     Cmove    $d05c,bpl1ptl
  696.     Cmove    $0007,bpl2pth
  697.     Cmove    $d000,bpl2ptl
  698.     Cmove    $2600,bplcon0
  699.     Cmove    $0000,Color00
  700.     Cmove    $0222,Color09
  701. Smth    Cmove    $0000,Bplcon1
  702.  
  703. ; ---- Rasters Behind Sine ----
  704.  
  705.     Cmove    $0F68,Color01
  706.     Cwait    50,0
  707.     Cmove    $0F79,Color01
  708.     Cwait    52,0
  709.     Cmove    $0F8a,Color01
  710.     Cwait    54,0
  711.     Cmove    $0F9b,Color01
  712.     Cwait    56,0
  713.     Cmove    $0FAc,Color01
  714.     Cwait    58,0
  715.     Cmove    $0FBd,Color01
  716.     Cwait    60,0
  717.     Cmove    $0FCe,Color01
  718.     Cwait    62,0
  719.     Cmove    $0FDf,Color01
  720.     Cwait    64,0
  721.     Cmove    $0FCe,Color01
  722.     Cwait    66,0
  723.     Cmove    $0FBd,Color01
  724.     Cwait    68,0
  725.     Cmove    $0FAc,Color01
  726.     Cwait    70,0
  727.     Cmove    $0F9b,Color01
  728.     Cwait    72,0
  729.     Cmove    $0F8a,Color01
  730.     Cwait    74,0
  731.     Cmove    $0F79,Color01
  732.     Cwait    76,0
  733.     Cmove    $0F68,Color01
  734.     Cwait    78,0
  735.     Cmove    $0F57,Color01
  736.  
  737. ; ---- Copper Bar -1-
  738.  
  739.     Cwait    90,0
  740.     Cmove    $0200,Bplcon0
  741.     Cmove    $0000,Bplcon1
  742.     Cmove    $0000,Bpl1mod
  743.     Cmove    $0000,Bpl2mod
  744.     Cmove    $0038,Ddfstrt
  745.     Cmove    $0005,Color00
  746.     Cwait    91,0
  747.     Cmove    $0126,Color00
  748.     Cwait    92,0
  749.     Cmove    $0459,Color00
  750.     Cwait    93,0
  751.     Cmove    $099d,Color00
  752.     Cwait    94,0
  753.     Cmove    $0bbe,Color00
  754.     Cwait    95,0
  755.     Cmove    $0889,Color00
  756.     Cwait    96,0
  757.     Cmove    $0444,Color00
  758.     Cwait    97,0
  759.     Cmove    $0333,Color00
  760.     Cwait    98,0
  761.     Cmove    $0003,Color00
  762.  
  763. ; ---- Set Up Vector Bitmaps ----
  764.  
  765.     Cmove    $2600,Bplcon0
  766.     Cmove    $0007,Bpl2pth
  767. Bit1l
  768.     Cmove    $0000,Bpl2ptl
  769.     Cmove    $0006,Bpl1pth
  770.     Cmove    $0000,Bpl1ptl
  771.     Cmove    $002f,Color09            ; Vector Colour
  772.     Cmove    $049b,Color01            ; Vector Colour
  773.  
  774. Sell
  775.     Cwait    142,0
  776.     Cmove    $fff,Color01
  777. Selh
  778.     Cwait    150,0
  779.     Cmove    $049b,Color01            ; Vector Colour
  780.     
  781.     Pal
  782.  
  783. ; ---- Copper Bar ----
  784.  
  785.     Cwait    1,0
  786.     Cmove    $0200,Bplcon0
  787.     Cmove    $0005,Color00
  788.     Cwait    2,0
  789.     Cmove    $0126,Color00
  790.     Cwait    3,0
  791.     Cmove    $0459,Color00
  792.     Cwait    4,0
  793.     Cmove    $099d,Color00
  794.     Cwait    5,0
  795.     Cmove    $0bbe,Color00
  796.     Cwait    6,0
  797.     Cmove    $0889,Color00
  798.     Cwait    7,0
  799.     Cmove    $0444,Color00
  800.     Cwait    8,0
  801.     Cmove    $0333,Color00
  802.     Cwait    9,0
  803.     Cmove    $0000,Color00
  804.     Cwait    12,0
  805.     Cmove    $2200,Bplcon0
  806.     Cmove    $0eca,Color01
  807.     Cmove    $0aaf,Color02
  808.     Cmove    $0433,Color03
  809. Log1l    Cmove    $0000,Bpl1ptl
  810. Log1h    Cmove    $0000,Bpl1pth
  811. Log2l    Cmove    $0000,Bpl2ptl
  812. Log2h    Cmove    $0000,Bpl2pth
  813. SetI    Macro
  814.     Cwait    \1,0
  815.     Cmove    \2,Color01
  816.     Cmove    \3,Color02
  817.     Endm
  818.     SetI    14,$444,$006
  819.     SetI    15,$444,$118
  820.     SetI    16,$444,$006
  821.     SetI    17,$444,$006
  822.     SetI    18,$555,$006
  823.     SetI    19,$666,$118
  824.     SetI    20,$777,$129
  825.     SetI    21,$888,$23a
  826.     SetI    22,$999,$34a
  827.     SetI    23,$aaa,$45b
  828.     SetI    24,$bbb,$56c
  829.     SetI    25,$ccc,$67c
  830.     SetI    26,$ddd,$78d
  831.     SetI    27,$eee,$89e
  832.     SetI    28,$fff,$9be
  833.     SetI    29,$eee,$bcf
  834.     SetI    30,$ddd,$9be
  835.     SetI    31,$ccc,$89e
  836.     SetI    32,$bbb,$78d
  837.     SetI    33,$aaa,$67c
  838.     SetI    34,$999,$56c
  839.     SetI    35,$888,$45b
  840.     SetI    36,$777,$34a
  841.     SetI    37,$666,$23a
  842.     SetI    38,$555,$129
  843.     SetI    39,$444,$118
  844.     SetI    40,$444,$006
  845.     SetI    41,$444,$006
  846.     SetI    42,$444,$118
  847.     SetI    43,$444,$006
  848.     Cwait    45,0
  849.     Cmove    $0200,Bplcon0
  850.     Endcop
  851.  
  852. *************************$****************************************************
  853.  
  854. SCROLLERSPACE    DCB.B    9*46
  855.  
  856. *****************************************************************************
  857.  
  858.  Even
  859. TitleText
  860.     Include    Loader/MenuText    
  861.  
  862. *****************************************************************************
  863.  
  864. Logo
  865.     Incbin    Gfx/SArena.Bm
  866.     
  867. *****************************************************************************
  868.  
  869. bpsong    incbin Snd/Sound
  870.         
  871. *****************************************************************************
  872.  
  873.